The present invention relates to data processing methods, systems, and computer program products, and, more particularly, to data processing methods, systems, and computer program products for managing files.
Software applications are typically unaware of what a user is trying to accomplish at any given time. One way in which this is manifested is when opening a series of files, such as, for example, source code in an interactive development environment. A user may need to open several related files in various directories in the process of developing or debugging a problem. Conventional user interfaces may attempt to assist the user by providing a recent history of opened files and/or keeping the file selection dialog open to the last directory that the user opened a file from.
Neither of these approaches take into consideration that the next file the user wants to open may be related to the file or files that he or she is currently working with. Keeping a recent history of opened files may be ineffective because the recent history may not be strongly correlated with the future. For example, if a user works on ten files solving one problem and then opens ten different files working on a new problem, when the user returns to the first problem, the original ten files may no longer be in history as they may be replaced by the more recent ten files. Keeping the file selection dialog open to the last directory that the user opened a file from may also be ineffective because even related files may reside in different directories. A user may need to navigate multiple source trees to get to a desired file.
Although described above with respect to opening files, similar principles apply to Web browsers and opening Web pages. A Web browser may store a relatively large number of “bookmarks” or “favorites” and may also include a feature to store the last several Websites visited by a user. Conventional Web browsers, however, generally do not assist a user in getting to a next site that they may be interested in based on a site that they are currently viewing. Although Web browsing may be a somewhat random process, frequently a user may be trying to accomplish a specific goal. For example, managers in a company may visit various human resources and personnel sites during one session. Some users may always visit a certain set of Websites every morning or every day at lunch. It may be useful to detect these patterns to assist a user in navigating to a next likely destination in a more useful manner than listing, for example, a thousand Websites that have been bookmarked or the last ten sites that have been visited.